package com.yue.control;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

import com.yue.bean.UserInfoBean;
import com.yue.modal.UserModel;
import com.yue.utils.MyUtils;
import org.apache.commons.lang3.StringUtils;


@WebServlet(name = "UserInfoAddServlet", value = "/UserInfoAddServlet")
public class UserInfoAddServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1、设置编码【由filter来进行处理】
//        request.setCharacterEncoding("utf-8");
//        response.setCharacterEncoding("utf-8");

        // 2、获取表单数据，并把表单数据保存到实例类中【此步功能：将表格单数据保存到对应的实体类的属性上】
        // 【在SpringMVC框架中会自动实现】
        // 参考案例：https://gitee.com/climpeaker/zb_webproject0915/blob/master/src/com/yuw/utils/MyUtils.java

        UserInfoBean userInfoBean = MyUtils.getNewInstance(UserInfoBean.class);
        // 如果有id主键字段，则获取该字段的值
        if (StringUtils.isNotEmpty(request.getParameter("userId"))) {
            userInfoBean.setUserId(Integer.valueOf(request.getParameter("userId")));
        }

        userInfoBean.setUserName(request.getParameter("userName"));
        System.out.println("用户名：" + request.getParameter("userName"));
        userInfoBean.setUserPsw(request.getParameter("userPsw"));
        userInfoBean.setUserTel(request.getParameter("userTel"));
        // 把从前台页面获取的表单数据的值转换为 日期 Date 类型
        String strRegiseterDate = request.getParameter("userRegisteDate");
        // 把前台页面传递的string类型转换为日期的date类型
        System.out.println("前台页面的日期字符串：" + strRegiseterDate);
        userInfoBean.setUserRegisteDate(MyUtils.convertString2Date(strRegiseterDate, "yyyy-MM-dd"));

        //System.out.println("日期类型："+userInfoBean.toString());
        // 3、调用model层进行数据保存的业务逻辑处理
        int i = MyUtils.getNewInstance(UserModel.class).saveUserInfo(userInfoBean);

        // 4、数据保存成功之后，跳转的保存结果显示页面
        if (i > 0) {
            // 保存成功，跳转到成功显示页面
            // 调用Model层进行查询操作，将用户数据查询出来，保存到session中
            List<UserInfoBean> lstUsers = MyUtils.getNewInstance(UserModel.class).queryUserInfoAll();
            // 在跳转之前，需要将显示在成功页面的数据进行session缓存
            request.getSession().setAttribute("lstUsers", lstUsers);

            request.getRequestDispatcher("/WEB-INF/viewpages/ userInfoB/UserInfoAddDetail.jsp").forward(request, response);
        } else {
            // 保存失败，继续跳回新增页面
            request.getRequestDispatcher("WEB-INF/viewpages/userInfoB/UserInfoAdd.jsp").forward(request, response);
        }
    }
}